<?php

class KabupatensController extends \BaseController {

	/**
	 * Display a listing of kabupatens
	 *
	 * @return Response
	 */
	public function dataView()
	{
		$kabupatens = DB::table('kabupatens')->leftJoin('provinsis','provinsis.id','=','kabupatens.provinsi_id')->where('kabupatens.is_active', '=', '1')->select(array('kabupatens.id','provinsis.nama AS provinsi_nama','kabupatens.nama','kabupatens.keterangan'));
		return Datatables::of($kabupatens)
		->add_column('operations', '<div class="btn-group">
                                        <a href="#" class="btn btn-default btn-detail" data-provinsi="{{ $provinsi_nama }}" data-nama="{{ $nama }}" data-keterangan="{{ $keterangan }}"><i class="fa fa-list text-danger" data-toggle="tooltip" data-placement="top" data-original-title="Detail"></i></a>
                                        {{ HTML::decode(link_to_route(\'kabupatens.edit\', \'<i class="fa fa-pencil text-warning" data-toggle="tooltip" data-placement="top" data-original-title="Edit"></i>\', $id, array(\'class\'=>\'btn btn-default btn-edit\'))) }}
                                        <a href="#" class="btn btn-default btn-delete" data-form=\'{{Form::model($id,array(\'route\'=>array(\'kabupatens.destroy\',$id),\'method\'=>\'DELETE\',\'class\'=>\'formDelete\'))}}{{Form::close()}}\'><i class="fa fa-times text-danger" data-toggle="tooltip" data-placement="top" data-original-title="Delete"></i></a>
	                                </div>')
		->make();
	}

	public function index()
	{
		// $kabupatens = Kabupaten::where('is_active', '=', '1')->orderBy('nama','ASC')->get();

		// $kabupatens = DB::table('kabupatens')->leftJoin('provinsis','provinsis.id','=','kabupatens.provinsi_id')->where('kabupatens.is_active', '=', '1')->orderBy('provinsis.nama','ASC')->orderBy('nama','ASC')->get(array('kabupatens.*','provinsis.nama AS nama_prov'));

		// $lokasis = DB::table('lokasis')->leftJoin('tipes', 'tipes.id', '=', 'lokasis.tipe_id')->where('lokasis.is_active', '=', '1')->orderBy('lokasis.nama', 'ASC')->get(array('lokasis.*', 'tipes.nama AS nama_tipe'));

		return View::make('kabupatens.index');
	}

	/**
	 * Show the form for creating a new kabupaten
	 *
	 * @return Response
	 */
	public function create()
	{
		return View::make('kabupatens.create');
		// return Datatables::of($provinsis)->make();
		// $provinsis = array('' => '- - Pilih Provinsi - -') + Provinsi::where('is_active', '=', '1')->orderBy('nama','ASC')->lists('nama','id');
		// return View::make('kabupatens.create', array('provinsis'=>$provinsis));
	}

	public function dataTable()
	{
		$provinsis = DB::table('provinsis')->where('is_active', '=', '1')
		->select(array('id','nama'));
		return Datatables::of($provinsis)
		->edit_column('nama','<span data-id="{{ $id }}" data-nama="{{ $nama }}">{{ $nama }}</span>')
		->make();
	}

	/**
	 * Store a newly created kabupaten in storage.
	 *
	 * @return Response
	 */
	public function store()
	{
		$validator = Validator::make($data = Input::all(), Kabupaten::$rules);

		if ($validator->fails())
		{
			return Redirect::back()->withErrors($validator)->withInput();
		}

		Kabupaten::create($data);

		return Redirect::route('kabupatens.index');
	}

	/**
	 * Display the specified kabupaten.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
		$kabupaten = Kabupaten::findOrFail($id);

		return View::make('kabupatens.show', compact('kabupaten'));
	}

	/**
	 * Show the form for editing the specified kabupaten.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{
		// $provinsis = Provinsi::where('is_active', '=', '1')->orderBy('nama','ASC')->lists('nama','id');
		// return View::make('kabupatens.edit', array('provinsis'=>$provinsis));

		$kabupaten = Kabupaten::find($id);
		// return dd($kabupaten);
		// $provinsi = Provinsi::find($kabupaten->id)->get();
		// return View::make('kabupatens.edit', compact('kabupaten'));
		// return dd($kabupaten);
		return View::make('kabupatens.edit')->with(compact('kabupaten'));
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function update($id)
	{
		$validator = Validator::make($data = Input::all(), Kabupaten::$rules);

		if ($validator->fails())
		{
			return Redirect::back()->withErrors($validator)->withInput();
		}

		Kabupaten::create($data);

		$kabupaten = Kabupaten::findOrFail($id);

		// $validator = Validator::make($data = Input::all(), Kabupaten::$rules);

		// if ($validator->fails())
		// {
		// 	return Redirect::back()->withErrors($validator)->withInput();
		// }

		// $kabupaten->update($data);

		$kabupaten->is_active = 0;

		$kabupaten->save();

		return Redirect::route('kabupatens.index');
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		$kabupaten = Kabupaten::findOrFail($id);

		$kabupaten->is_active = 0;
		$kabupaten->user_id = Auth::user()->id;
		$kabupaten->action = 3;

		$kabupaten->save();

		// Kabupaten::destroy($id);

		return Redirect::route('kabupatens.index');
	}

	public function getComboViewKecamatans()
	{
		$id_kabupaten = Input::get('id_kabupaten');
		$kabupaten    = Kabupaten::findOrFail($id_kabupaten);
		$kecamatans   = $kabupaten->kecamatans;

		if(!is_null(Lingkungan::active()->first())) {
			$lingkungan        = Lingkungan::active()->first()->toArray();    		
			$current_kecamatan = $lingkungan['kecamatan_id'];

			return View::make('kabupatens.partials.combo_view_kecamatans')
				->with(compact('kecamatans'))
				->with(compact('current_kecamatan'));			
		}else{
			return View::make('kabupatens.partials.combo_view_kecamatans')
				->with(compact('kecamatans'));				
		}		
	}	
}